Goal optimized process scheduler

ABSTRACT

Systems and techniques for goal optimized process scheduler are described herein. A set of processes may be obtained from a plurality of process engines. Process data may be identified for each member of the set of processes. Goal data may be obtained for a goal. The goal data may indicate elements for attainment of the goal by completion of one or more processes of the set of processes. A process schedule may be generated for the set of processes based on the goal data. The process schedule may be optimized through removal of processes from the process schedule by comparison of the process data to the goal data. The optimized process schedule may include a linear organization of processes for attainment of the goal. An optimized process schedule workflow may be created for display on a user interface of a computing device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.15/867,081, filed Jan. 10, 2018, now issued as U.S. Pat. No. 10,832,185,which is incorporated by reference herein in its entirety.

TECHNICAL FIELD

Embodiments described herein generally relate to process scheduling and,in some embodiments, more specifically to goal optimized processscheduling.

BACKGROUND

A process scheduler may define an order in which a set of processes maybe completed. There may be more processes to be processed than may becompleted. Some processes may be time specific and processing of oneprocess may prevent processing of another process. Processes may beprioritized to determine which processes to accept for processing and inwhat order the processes may be processed.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, which are not necessarily drawn to scale, like numeralsmay describe similar components in different views. Like numerals havingdifferent letter suffixes may represent different instances of similarcomponents. The drawings illustrate generally, by way of example, butnot by way of limitation, various embodiments discussed in the presentdocument.

FIG. 1 is a block diagram of an example of an environment and a systemfor a goal optimized process scheduler, according to an embodiment.

FIG. 2 illustrates a flow diagram of an example of a process for a goaloptimized process scheduler, according to an embodiment.

FIG. 3 illustrates an example of a user interface for displaying anoptimized process schedule workflow for a goal optimized processscheduler, according to an embodiment.

FIG. 4 illustrates an example of a method for a goal optimized processscheduler, according to an embodiment.

FIG. 5 is a block diagram illustrating an example of a machine uponwhich one or more embodiments may be implemented.

DETAILED DESCRIPTION

The increasing prevalence of short-term or task based freelance work hasbeen fueled by technological advances making it easier for peoplelooking for jobs to be connected with those looking for help. Forexample, mobile applications for facilitating ride-sharing, personalshopping, personal services, etc. have made it possible for people tocomplete short-term jobs close to them at a moment's notice. Some peoplemay earn a majority of their money by going from short-term job (e.g.,gig) to short-term job. This gig economy may allow a person theflexibility to work on their schedule and take jobs they may findinteresting. The person may have a goal (e.g., a financial goal, etc.)that they may be trying to accomplish through completion of gigs.However, it may not be apparent to the person which gig or combinationof gigs may provide the most efficient and effective attainment of thegoal. For example, the person may take ride-sharing gigs during rushhour, but because of traffic levels, it may be more efficient to take apersonal service gig that may be completed over rush hour because itwould result in more revenue.

The techniques discussed herein address the process selection andscheduling challenges presented by the gig economy by identifying a goalof a user, selecting job processes, and optimizing the scheduling of theselected job processes in a way that maximizes progress toward the goal.The job processes may be obtained from one or more job process engines(e.g., ride-sharing service application, personal services application,delivery service application, etc.). The user may be provided with adetailed itinerary of jobs to be completed to attain the goal. Theitinerary may include the time the job is expected to take, how much thejob pays, and alternative jobs that may be selected. The itinerary maybe presented to a mobile-device of the user and selecting a task mayinitiate the process with its respective job process engine. Forexample, the user may select a ride-sharing job from the itinerary andit may activate the availability of the user on a ride-sharing serviceapplication or may accept a ride job currently available. Thus, the usermay be provided with a central location for managing job processes inaddition to the automated selection and prioritization of jobs.

FIG. 1 is a block diagram of an example of an environment 100 and asystem 115 for a goal optimized process scheduler, according to anembodiment. The environment 100 may include a user 105 that may be usinga device 110 (e.g., mobile device, smartphone, tablet etc.). The device110 may be communicatively coupled to the system 115 (e.g., via wirednetwork, wireless network, cellular network, shared bus, etc.). Thesystem 115 may include a transceiver 120, a comparator 125, a processscheduler 130, a process schedule optimizer 135, an output generator140, an activity monitor 145, and APIs 150. The system 115 may becommunicatively coupled to job process engines 155 (e.g., ride-sharingservice, delivery service, etc.).

The user 105 may be a user of the job process engines 155. For example,the user 105 may have driver account on a ride-sharing service and mayhave a service provider account on a personal services portal includedin the job process engines 155. The job process engines 155 may connectthe user 105 with other users that may be looking to have job processescompleted. For example, another user may schedule a ride with theride-sharing service and the request may be routed to the device 110 foracceptance by the user 105.

The transceiver 120 may provide data ingress and egress services for thesystem 115. The transceiver may receive inputs from and transmit outputsto the device 110 such as, for example, audio, video, touchscreenactivations, user interface display data, etc. In another example, thetransceiver 120 may transmit data to and receive data from the jobprocess engines 155. The transceiver 120 may transfer received data toother components of the system 115 for processing and may receive datatransferred by other components of the system 115 for transmissionoutside the system 115.

The API(s) 150 may provide connectivity and interoperability between thesystem 115 and external entities such as the device 110 and the jobengines 155. The API(s) 150 may include instructions for connecting tothe job process engines 155 using respective user accounts of the user105. For example, the user 105 may provide user account information forthe ride-sharing service and the API(s) 150 may use the user accountinformation to automatically establish a connection to an account forthe user 105 on the ride-sharing service. The API(s) 150 may includeinstructions for translating data elements between the external entitiesand the system 115. For example, the ride-sharing service may request aparticular date format and the API(s) 150 may translate a datetransmitted by the system in one format to the particular formatrequested by the ride-sharing service.

The API(s) 150 may work in conjunction with the transceiver 120 toobtain a set of processes from the job process engines 155. For example,a list of available personal service jobs may be obtained from thepersonal service portal and a list of ride-sharing opportunities may beobtained from the ride-sharing service. Process data may be identifiedfor each member of the set of processes from the job process engines155. In an example, a process completion value may be obtained for aprocess. The process completion value may describe a monetary valueawarded for completion of the process, a benefit conferred by completionof the task, or other indicia indicating an outcome achieved bycompletion of the process. For example, a moving job process obtainedfrom the personal service portal may include data indicating $150.00 maybe earned by the user 105 upon completion.

In another example, a process completion location may be obtained forthe processes. For example, geolocation data of another user submittingthe process or an address information entered by the other user may beprovided along with the process. For example, the moving job process maybe indicated as being located at 1234 Main Street.

In an example, pattern information may be obtained from the job processengines 155 that may indicate special circumstances for completing aprocess. For example, the ride-sharing service may indicate that ridejobs completed during a particular time period (e.g., 1 am to 4 am, onDecember 31, etc.) may result in higher earning that during otherperiods (e.g., a ride job may pay $6.00 on December 31 that may pay$4.00 on January 3, etc.). The special circumstances may include trafficpatterns, demand variability, periods of worker shortages, etc.

In another example, a user activity of the user 105 of the device 110may be identified from the job process engines 155 or other data systems(not shown) such as, for example, a financial transaction database, etc.The user activity may indicate characteristics of the user 105 such aswork history, spending habits, etc.

Goal data for a goal established for (or by) the user 105 may beobtained from the device 110 by the transceiver 120. The goal data mayinclude elements for attaining the goal by completion of one or moreprocesses of the set of processes. For example, a user 105 may have agoal of saving for a down payment for a home purchase which may includean element identifying a total amount needed of $10,000. The user 105may have $5,000 in a savings account so the amount remaining to be savedmay be $5,000. In the example, the element for attaining the goal isearning the remaining $5,000. In another example, a user may have a goalfor a day or another period of time, such as an amount of money, theuser would like to make in the period of time. A goal may benon-financial. E.g., the user may have a goal to complete a particulargig to, e.g., gain experience or build a resume.

The process scheduler 130 may generate a processes schedule for the setof processes. The set of processes may be arranged in the processschedule according to time periods in which they may be completed. Forexample, requestor of the moving job process may have requested that theprocess be completed between 4 pm and 7 pm. Thus, the process schedulemay arrange the set of processes in part based on a time period in whichmembers of the set of processes are to be completed. Some processes maybe completed during designated time periods and some processes may bemutually exclusive (e.g., only one processes of a group may be completedfor the time period, etc.). For example, the user 105 may not be able tocomplete a ride-sharing job process while completing the moving jobprocess. The process scheduler 130 may include the overlapping processesin the generated process schedule. The process schedule may be generatedbased on work hours designated by the user 105 (e.g., 9 am to 5 pm,etc.) or based on user availability (e.g., as determined based on anevaluation of calendar entries in a calendaring application of the user105, etc.). In an example, the process schedule may schedule processesfor twenty-four hours in a day.

The process schedule optimizer 135 may optimize the process schedule byremoving processes from the process schedule by working with thecomparator 125 to compare the processes data to the goal data. Forexample, two process may be mutually exclusive for a period of time inthe process schedule and the comparator 125 may determine which of thetwo processes is provides the most progress towards the goal and mayremove the other process from the process schedule. The optimizedprocess schedule may include a linear organization of processes forattaining the goal. The linear organization of the processes mayrepresent an ordered list of processes that should be completed by theuser 105 to work towards attainment of the goal.

The comparator 125 may compare the process data for the members of theset of processes against the goal data to determine a subset of the setof processes that may most effective in attaining progress towards thegoal. In an example, a goal value may be determined for the goal usingthe goal data. For example, the user 105 may have a goal of earning$5,000 remaining for the down payment on the home purchase and $5,000may be the goal value. In an example, the process completion value maybe identified for members of the set of processes using the process dataand the process schedule optimizer 135 may optimize the process schedulebased on an evaluation, by the comparator 125, of the process completionvalues to the goal value.

For example, the process data may indicate that ride-sharing job processmay pay $25 per hour between 10 am and 11 am and may pay $10 per hourbetween 7 am and 9 am. The process data may also indicate that a movingjob process to be completed from 7 am and 9 am may pay $50 per hour. Thecomparator 125 may determine that the rider-sharing job process between7 am and 9 am results in less pay over the time period and, because theuser 105 may only complete one of the job processes for the time period,the process schedule optimizer 135 may remove the ride-sharing jobprocess for 7 am to 9 am from the process schedule. Thus, the processschedule may be optimized to maximize revenue for the user 105.

In an example, the process schedule optimizer 135 may work inconjunction with the comparator 125 to identify a process location for amember of the set of process and may optimize the process schedule byevaluating the process locations of the member. The process location maybe used to optimize the process schedule to provide an efficient (e.g.,least time, least fuel, least downtime, etc.) workflow path for theprocesses. The locations of the process may be evaluated in conjunctionwith scheduling information of the user 105 (e.g., data from acalendaring application, etc.) to optimize the process schedule aroundthe planned activity of the user 105.

For example, a calendar entry for the user 105 may indicate the user isgoing to be in a city forty-five miles from home for a concert and theprocess schedule optimizer 135 may request the process scheduler 130find processes near that location before and after the concert. Theprocess schedule optimizer 135 may then schedule job processes betweenthe home of the user and the location of the concert before and afterthe concert. For example, a ride-sharing job process may be identifiedleaving from the home city of the user and the location of the concertand the process may remain on the optimized process schedule while aride-sharing job process in the home city of the user 105 may be removedfrom the process schedule. Thus, the process schedule may be optimizedaround the time and place of the expected movements of the user 105.

In an example, the comparator 125 may identify a pattern for a member ofthe plurality of the job process engines 155. The pattern may beidentified from the process data identified for processes for theaccount of the user 105 or may be identified by evaluating process dataacross users of the system 115 collected from processes of the member ofthe job process engine 155. For example, process data for incomingride-sharing job processes across user accounts of the system 115 may beevaluated to identify the pattern. In some examples, the comparator 125may use machine learning techniques (e.g., linear regression, neuralnetworks, etc.) to identify patterns in the process data. For example,the comparator 125 may identify the ride-sharing job process pay 25%more on a national holiday than they do on a regular business day. Thecomparator 125 may evaluate the effects of the identified patternagainst the goal data and may assign a weight to a process of the set ofprocesses corresponding to the job process engine 155 from which theprocess and the pattern was obtained.

The weighting value may be used by the process schedule optimizer 135 toprioritize processes that are weighted higher and may provide moreefficient progress toward the goal. For example, a first ride-sharingjob process from a first ride-sharing service may be removed while asecond ride-sharing job process may be allowed to remain for a timeperiod based on the second rid-sharing job process having a higherweight value than the first ride-sharing job process. The higherweighting may be the result of an identified pattern of the secondride-sharing service paying a higher rate for the time period than thefirst ride-sharing service. In an example, the weight may be based onuser enjoyment (e.g., user preferences, preferred job types, etc.) Forexample, a lower paying gig with more enjoyment (e.g., a higher userpreference, etc.) may be prioritized over a higher paying one that isnot as enjoyable (e.g., having a lower user preference, etc.). Thepreferences may be stored in a user profile and may be accessed whenevaluating the process schedule.

In an example, a user activity of the user 105 of the computing device110 may be identified by the activity monitor 145 and the processschedule optimizer 135 may optimize the process schedule based on anevaluation, by the comparator 125, of the user activity against the goalvalue. The activity monitor 145 may be authorized by the user 105 toaccess a variety of data sources (e.g., financial records, social mediaaccounts, etc.) that may include indications of user activity. Forexample, it may be identified that the user 105 spent $1,000 on atelevision and now the goal value is $6,000. The process scheduleoptimizer 135 may expand the size (e.g., working hours in a day, weekendchanges from non-working day to working day, etc.) of the optimizedprocess schedule based on the evaluation. For example, prior to the useractivity the process schedule optimizer 135 may have optimized a processschedule for eight working hours a day and, with the purchase of thetelevision, may optimize the process schedule for twelve working hours aday. Thus, the process schedule optimizer 135 may adjust for actions ofthe user 105 while prioritizing the goal.

The output generator 140 may create an optimized process scheduleworkflow for display on the device 110 (or on another device usingaudio, text, etc.). For example, the optimized process schedule may beused to generate a graphical representation of the correspondingprocesses in an order in which they are to be completed. In an example,the optimized process workflow may be output as audio to be emitted froma speaker of the device 110. The output generator 140 may output theoptimized process schedule workflow in a user interface of the device110. In an example, the optimized process schedule workflow may includeinstructions for initiating a selected process with its respective jobprocess engine 155 upon selection of a user interface elementcorresponding to the selected process. For example, the user 105 may tapa ride-sharing job process displayed in the user interface and theride-sharing job process may be initiated by opening and activating anapplication for the corresponding ride-sharing job process installed onthe device 110. In an example, the optimized process schedule workflowmay be overlaid on a map and a route may be generated and displayedproviding an indication of a geographical order for completing theprocesses.

In an example, the comparator 125 may evaluate a set of optimizedprocess schedules including the optimized process schedule to identify acommon period of reduced process activity. For example, the comparator125 may identify that process scheduling for a period of time between 1pm and 3 pm Monday through Friday has a lower volume of scheduledprocesses compared to other time periods Monday through Friday. Anindication of the period of reduced process activity may be transmittedto a computing device (e.g., device 110) of a user (e.g., user 105). Forexample, the user may be sent an indication that personal errands shouldbe scheduled between 1 pm and 3 pm Monday through Friday because ofreduced process activity. In an example, the indication may betransmitted to a third-party application. For example, a dentalappointment scheduling application may receive an indication that usersof the system 115 are less likely to be preforming job processes between1 pm and 3 pm Monday through Friday. The dental appointment schedulingapplication may indicate to a user that they should increase appointmentcapacity or advertise availability of appointments during the period.Thus, periods of low process activity towards the goal may be identifiedand used to complete activities that may otherwise interfere withgoal-based process completion.

The optimized process schedule may be updated as processes are completedand as processes are added to the set of processes. In an example,progress towards completing a current process may be identified by theactivity monitor 140. An indication of a new process may be receivedfrom a process engine of the plurality of process engines (e.g., the jobprocess engines 155). The process schedule may be re-optimized by theprocess schedule optimizer 135 upon a determination, based on evaluationof process data for the new process and the goal data by the comparator125, that the new process is a better fit for attaining the goal than anexisting process remaining in the linear organization of processesremaining to be completed. A re-optimized process schedule workflow maybe displayed in the user interface based on the re-optimized processschedule.

For example, the user 105 may be in the middle of completing aride-sharing job process and the next process in the optimized processschedule workflow may be a moving job process. However, a new grocerydelivery job process may have been received that may have a higher payrate than the moving job process to be completed at the same time. Themoving job process may be removed from the process schedule and the newoptimized process schedule may include the grocery delivery job process.The other reaming processes may be revaluated and optimized based onprocess schedule impacts by the new grocery delivery job process. Thus,the process schedule may be continually optimized in near-real time asprocesses are completed and received.

FIG. 2 illustrates a flow diagram of an example of a process 200 for agoal optimized process scheduler, according to an embodiment. Theprocess 200 may provide features as described in FIG. 1 .

The process 200 may begin by identifying (e.g., by the process scheduler130 as described in FIG. 1 , etc.) available processes (e.g., tasks,jobs, etc.) from a plurality of job process engines (e.g., job processengines 155 as described in FIG. 1 , etc.) at operation 205. Theprocesses may be scheduled (e.g., by the process scheduler 130 asdescribed in FIG. 1 , etc.) at operation 210. A goal may be identified(e.g., by the comparator 125 as described in FIG. 1 , etc.) at operation215.

A time period of the process schedule may be processed (e.g., by theprocess schedule optimizer 135 as described in FIG. 1 , etc.) atoperation 220. It may be determined (e.g., by the process scheduleoptimizer 135 as described in FIG. 1 , etc.) whether there are mutuallyexclusive processes for the time period at decision 225. If so, theprocesses may be compared to the goal (e.g., by the comparator 125 asdescribed in FIG. 1 , etc.) to determine and selected the best processfor goal attainment at operation 230. The process 200 continuesprocessing time periods at operation 220.

After all the time periods have been processed as determined at decision235 an optimized process schedule may be generated (e.g., by the processschedule optimizer 135 as described in FIG. 1 using evaluations of thecomparator 125 as described in FIG. 1 , etc.) at operation 240. Anoptimized process schedule workflow may be created (e.g., by the outputgenerator 140, etc.) and output (e.g., using the transceiver 120 asdescribed in FIG. 1 , etc.) at operation 245.

FIG. 3 illustrates an example of a user interface 300 for displaying anoptimized process schedule workflow for a goal optimized processscheduler, according to an embodiment. The user interface 300 mayprovide features as discussed in FIGS. 1 and 2 . The user interface 300may display an optimized process schedule workflow (e.g., as describedin FIG. 1 , etc.) that includes a list of tasks to be completed in orderbased on the evaluations of the processes against a goal. As shown, theprocesses may be arranged by time periods indicating when the processesshould be completed. The user may tap, or otherwise select, a processfrom the list and the process may be initiated with a correspondingprocess engine. For example, clicking on a ride-sharing job processelement may open an application that corresponds with the process andmay activate (or otherwise accept) the process.

In an example, the user interface 300 may provide an indication of timeperiods when process activity volume is low. The indication may providethe user with a time period in which non-goal-based tasks (e.g.,personal errands, etc.) may be completed. This may allow the user tomaximize progress toward the goal by reducing non-goal-based activityduring periods of high process activity.

FIG. 4 illustrates an example of a method 400 for a goal optimizedprocess scheduler, according to an embodiment. The method 400 mayprovide features as described in FIGS. 1 to 3 .

A set of processes may be obtained (e.g., using the transceiver 120 asdescribed in FIG. 1 , etc.) from a plurality of process engines (e.g.,job process engines 155 as described in FIG. 1 , etc.) at operation 405.

Process data may be identified (e.g., by the comparator 125 as describedin FIG. 1 , etc.) for each member of the set of processes at operation410.

Goal data of a goal may be obtained (e.g., by the comparator 125 asdescribed in FIG. 1 , etc.) at operation 415. The goal data may indicateelements for attainment of the goal by completion of one or moreprocesses of the set of processes.

A processes schedule may be generated (e.g., by the process scheduler130 as described in FIG. 1 , etc.) for the set of processes at operation420.

The process schedule may be optimized (e.g., by the process scheduleoptimizer 135 as described in FIG. 1 , etc.) through removal ofprocesses from the process schedule by comparing (e.g., by thecomparator 125 as described in FIG. 1 , etc.) the process data to thegoal data at operation 425. The optimized process schedule may include alinear organization of processes for attaining the goal.

An optimized process schedule workflow may be created (e.g., by theoutput generator 140 as described in FIG. 1 , etc.) for display on auser interface of a computing device at operation 430. In an example,the optimized process schedule workflow may include instructions forinitiation of a selected process with its respective process engine uponselection of a user interface element that corresponds to the selectedprocess.

In an example, a set of optimized process schedules that includes theoptimized process schedule may be evaluated (e.g., by the comparator 125as described in FIG. 1 , etc.) to identify a common period of reducedprocess activity and an indication of the period of reduced processactivity may be transmitted to a computing device of a user.

In another example, progress towards completing a current process may beidentified (e.g., by the comparator 125 as described in FIG. 1 , etc.).An indication of a new process may be received from a process engine ofthe plurality of process engines. The process schedule may bere-optimized (e.g., by the process schedule optimizer 135 as describedin FIG. 1 , etc.) upon a determination that, based on evaluation ofprocess data for the new process and the goal data (e.g., by thecomparator 125 as described in FIG. 1 , etc.), that the new process is abetter fit for attaining the goal than an existing process remaining inthe linear organization of processes remaining to be completed. Are-optimized process schedule workflow may be displayed in the userinterface based on the re-optimized process schedule.

In another example, a process completion value may be identified formembers of the set of processes using the process data and a goal valuemay be determined for the goal using the goal data. Optimization of theprocesses schedule may include an evaluation of the process completionvalue for the members against the goal value. In another example, aprocess location may be identified for members of the set of processesusing the process data and optimization of the processes schedule mayinclude evaluation of the process location for the members. Theoptimized process schedule workflow may include processes of theoptimized process schedule arranged on a map display with a route thatindicates the order in which the process are to be completed.

In another example, a pattern may be identified for a member of theplurality of process engines. The pattern for the member may beevaluated against the goal value and a weight value may be assigned to aprocess of the set of process that corresponds to the member based onthe evaluation. The optimization of the processes schedule may includeevaluation of the weight of the process against weights of other processof the set of processes. In another example, a user activity of a userof the computing device may be identified and optimization of theprocesses schedule may include evaluation of the user activity againstthe goal value.

FIG. 5 illustrates a block diagram of an example machine 500 upon whichany one or more of the techniques (e.g., methodologies) discussed hereinmay perform. In alternative embodiments, the machine 500 may operate asa standalone device or may be connected (e.g., networked) to othermachines. In a networked deployment, the machine 500 may operate in thecapacity of a server machine, a client machine, or both in server-clientnetwork environments. In an example, the machine 500 may act as a peermachine in peer-to-peer (P2P) (or other distributed) networkenvironment. The machine 500 may be a personal computer (PC), a tabletPC, a set-top box (STB), a personal digital assistant (PDA), a mobiletelephone, a web appliance, a network router, switch or bridge, or anymachine capable of executing instructions (sequential or otherwise) thatspecify actions to be taken by that machine. Further, while only asingle machine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein, such as cloud computing, software asa service (SaaS), other computer cluster configurations.

Examples, as described herein, may include, or may operate by, logic ora number of components, or mechanisms. Circuit sets are a collection ofcircuits implemented in tangible entities that include hardware (e.g.,simple circuits, gates, logic, etc.). Circuit set membership may beflexible over time and underlying hardware variability. Circuit setsinclude members that may, alone or in combination, perform specifiedoperations when operating. In an example, hardware of the circuit setmay be immutably designed to carry out a specific operation (e.g.,hardwired). In an example, the hardware of the circuit set may includevariably connected physical components (e.g., execution units,transistors, simple circuits, etc.) including a computer readable mediumphysically modified (e.g., magnetically, electrically, moveableplacement of invariant massed particles, etc.) to encode instructions ofthe specific operation. In connecting the physical components, theunderlying electrical properties of a hardware constituent are changed,for example, from an insulator to a conductor or vice versa. Theinstructions enable embedded hardware (e.g., the execution units or aloading mechanism) to create members of the circuit set in hardware viathe variable connections to carry out portions of the specific operationwhen in operation. Accordingly, the computer readable medium iscommunicatively coupled to the other components of the circuit setmember when the device is operating. In an example, any of the physicalcomponents may be used in more than one member of more than one circuitset. For example, under operation, execution units may be used in afirst circuit of a first circuit set at one point in time and reused bya second circuit in the first circuit set, or by a third circuit in asecond circuit set at a different time.

Machine (e.g., computer system) 500 may include a hardware processor 502(e.g., a central processing unit (CPU), a graphics processing unit(GPU), a hardware processor core, or any combination thereof), a mainmemory 504 and a static memory 506, some or all of which may communicatewith each other via an interlink (e.g., bus) 508. The machine 500 mayfurther include a display unit 510, an alphanumeric input device 512(e.g., a keyboard), and a user interface (UI) navigation device 514(e.g., a mouse). In an example, the display unit 510, input device 512and UI navigation device 514 may be a touch screen display. The machine500 may additionally include a storage device (e.g., drive unit) 516, asignal generation device 518 (e.g., a speaker), a network interfacedevice 520, and one or more sensors 521, such as a global positioningsystem (GPS) sensor, compass, accelerometer, or other sensor. Themachine 500 may include an output controller 528, such as a serial(e.g., universal serial bus (USB), parallel, or other wired or wireless(e.g., infrared (IR), near field communication (NFC), etc.) connectionto communicate or control one or more peripheral devices (e.g., aprinter, card reader, etc.).

The storage device 516 may include a machine readable medium 522 onwhich is stored one or more sets of data structures or instructions 524(e.g., software) embodying or utilized by any one or more of thetechniques or functions described herein. The instructions 524 may alsoreside, completely or at least partially, within the main memory 504,within static memory 506, or within the hardware processor 502 duringexecution thereof by the machine 500. In an example, one or anycombination of the hardware processor 502, the main memory 504, thestatic memory 506, or the storage device 516 may constitute machinereadable media.

While the machine readable medium 522 is illustrated as a single medium,the term “machine readable medium” may include a single medium ormultiple media (e.g., a centralized or distributed database, and/orassociated caches and servers) configured to store the one or moreinstructions 524.

The term “machine readable medium” may include any medium that iscapable of storing, encoding, or carrying instructions for execution bythe machine 500 and that cause the machine 500 to perform any one ormore of the techniques of the present disclosure, or that is capable ofstoring, encoding or carrying data structures used by or associated withsuch instructions. Non-limiting machine readable medium examples mayinclude solid-state memories, and optical and magnetic media. In anexample, a massed machine readable medium comprises a machine readablemedium with a plurality of particles having invariant (e.g., rest) mass.Accordingly, massed machine-readable media are not transitorypropagating signals. Specific examples of massed machine readable mediamay include: non-volatile memory, such as semiconductor memory devices(e.g., Electrically Programmable Read-Only Memory (EPROM), ElectricallyErasable Programmable Read-Only Memory (EEPROM)) and flash memorydevices; magnetic disks, such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

The instructions 524 may further be transmitted or received over acommunications network 526 using a transmission medium via the networkinterface device 520 utilizing any one of a number of transfer protocols(e.g., frame relay, internet protocol (IP), transmission controlprotocol (TCP), user datagram protocol (UDP), hypertext transferprotocol (HTTP), etc.). Example communication networks may include alocal area network (LAN), a wide area network (WAN), a packet datanetwork (e.g., the Internet), mobile telephone networks (e.g., cellularnetworks), Plain Old Telephone (POTS) networks, and wireless datanetworks (e.g., Institute of Electrical and Electronics Engineers (IEEE)802.11 family of standards known as Wi-Fi®, IEEE 802.16 family ofstandards known as WiMax®), IEEE 802.15.4 family of standards,peer-to-peer (P2P) networks, among others. In an example, the networkinterface device 520 may include one or more physical jacks (e.g.,Ethernet, coaxial, or phone jacks) or one or more antennas to connect tothe communications network 526. In an example, the network interfacedevice 520 may include a plurality of antennas to wirelessly communicateusing at least one of single-input multiple-output (SIMO),multiple-input multiple-output (MIMO), or multiple-input single-output(MISO) techniques. The term “transmission medium” shall be taken toinclude any intangible medium that is capable of storing, encoding orcarrying instructions for execution by the machine 500, and includesdigital or analog communications signals or other intangible medium tofacilitate communication of such software.

Additional Notes

The above detailed description includes references to the accompanyingdrawings, which form a part of the detailed description. The drawingsshow, by way of illustration, specific embodiments that may bepracticed. These embodiments are also referred to herein as “examples.”Such examples may include elements in addition to those shown ordescribed. However, the present inventors also contemplate examples inwhich only those elements shown or described are provided. Moreover, thepresent inventors also contemplate examples using any combination orpermutation of those elements shown or described (or one or more aspectsthereof), either with respect to a particular example (or one or moreaspects thereof), or with respect to other examples (or one or moreaspects thereof) shown or described herein.

All publications, patents, and patent documents referred to in thisdocument are incorporated by reference herein in their entirety, asthough individually incorporated by reference. In the event ofinconsistent usages between this document and those documents soincorporated by reference, the usage in the incorporated reference(s)should be considered supplementary to that of this document; forirreconcilable inconsistencies, the usage in this document controls.

In this document, the terms “a” or “an” are used, as is common in patentdocuments, to include one or more than one, independent of any otherinstances or usages of “at least one” or “one or more.” In thisdocument, the term “or” is used to refer to a nonexclusive or, such that“A or B” includes “A but not B,” “B but not A,” and “A and B,” unlessotherwise indicated. In the appended claims, the terms “including” and“in which” are used as the plain-English equivalents of the respectiveterms “comprising” and “wherein.” Also, in the following claims, theterms “including” and “comprising” are open-ended, that is, a system,device, article, or process that includes elements in addition to thoselisted after such a term in a claim are still deemed to fall within thescope of that claim. Moreover, in the following claims, the terms“first,” “second,” and “third,” etc. are used merely as labels, and arenot intended to impose numerical requirements on their objects.

The above description is intended to be illustrative, and notrestrictive. For example, the above-described examples (or one or moreaspects thereof) may be used in combination with each other. Otherembodiments may be used, such as by one of ordinary skill in the artupon reviewing the above description. The Abstract is to allow thereader to quickly ascertain the nature of the technical disclosure andis submitted with the understanding that it will not be used tointerpret or limit the scope or meaning of the claims. Also, in theabove Detailed Description, various features may be grouped together tostreamline the disclosure. This should not be interpreted as intendingthat an unclaimed disclosed feature is essential to any claim. Rather,inventive subject matter may lie in less than all features of aparticular disclosed embodiment. Thus, the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separate embodiment. The scope of the embodiments should bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

1. A system for an optimized goal-based process scheduler, the systemcomprising: at least one processor; and storage device includinginstructions that, when executed by the at least one processor, causethe at least one processor to perform operations to: establish aconnection to a plurality of third-party process engines to obtain a setof processes via respective Application Programming Interface (API)calls to the plurality of process engines, each process of the set ofprocesses relating to a task to be completed; identify process data, byaccessing the plurality of third-party process engines, for each memberof the set of processes; obtain goal data for a goal based on useractivities identified from at least one third-party process engine ofthe plurality or a separate data system, wherein the goal data indicateselements for attainment of the goal by completion of one or moreprocesses of the set of processes; generate a process schedule for theset of processes based on the goal data; generate an optimized processschedule of the process schedule, wherein the optimized process scheduleincludes a linear organization of processes for attainment of the goaland wherein generating the optimized process schedule includesoperations to: compare first process data of a first process and secondprocess data of a second process to the goal data; and replace the firstprocess with the second process in the process schedule; and transmitinstructions to a computing device to display applications correspondingto each process of the optimized process schedule, the applicationsbeing accessed through and associated with at least one of the pluralityof third-party process engines, wherein a first applicationcorresponding to an initial process in the optimized process schedule isactivated for display.
 2. The system of claim 1, further comprisingoperations to: identify a location for each task of the optimizedprocess schedule; and order the optimized process schedule based on anefficient location path between each task of the optimized processschedule.
 3. The system of claim 1, further comprising operations to:order the processes based on periods of time, where a financialincentive applies for completing an incentivized task from the optimizedprocess schedule during an identified time period.
 4. The system ofclaim 1, wherein the operations to display applications includeinstructions to display an indication of a benefit for completion ofeach process in the optimized process schedule.
 5. The system of claim4, further comprising operations to: order the processes of theoptimized process schedule based on the benefit for completion of eachprocess in the optimized process schedule.
 6. The system of claim 1,further comprising operations to: receive calendar data from thecomputing device; and re-optimize the process schedule based onincorporation of the calendar data.
 7. The system of claim 6, whereinre-optimizing the process schedule includes identifying an efficientroute based on location data for each task of the process schedule andlocation data for entries of the calendar data.
 8. At least onenon-transitory computer readable medium including instructions for anoptimized goal-based process scheduler that, when executed by at leastone processor, cause the at least one processor to perform operationsto: establish a connection to a plurality of third-party process enginesto obtain a set of processes via respective Application ProgrammingInterface (API) calls to the plurality of process engines, each processof the set of processes relating to a task to be completed, identifyprocess data, by accessing the plurality of third-party process engines,for each member of the set of processes; obtain goal data for a goalbased on user activities identified from at least one third-partyprocess engine of the plurality or a separate data system, wherein thegoal data indicates elements for attainment of the goal by completion ofone or more processes of the set of processes; generate a processschedule for the set of processes based on the goal data; generate anoptimized process schedule of the process schedule, wherein theoptimized process schedule includes a linear organization of processesfor attainment of the goal and wherein generating the optimized processschedule includes instructions to: compare first process data of a firstprocess and second process data of a second process to the goal data;and replace the first process with the second process in the processschedule; and transmit instructions to a computing device to displayapplications corresponding to each process of the optimized processschedule, the applications being accessed through and associated with atleast one of the plurality of third-party process engines, wherein afirst application corresponding to an initial process in the optimizedprocess schedule is activated for display.
 9. The at least one computerreadable medium of claim 8, further comprising instructions to: identifya location for each task of the optimized process schedule; and orderthe optimized process schedule based on an efficient location pathbetween each task of the optimized process schedule.
 10. The at leastone computer readable medium of claim 8, further comprising instructionsto: order the processes based on periods of time, where a financialincentive applies for completing an incentivized task from the optimizedprocess schedule during an identified time period.
 11. The at least onecomputer readable medium of claim 8, wherein the instructions to displayapplications include instructions to display an indication of a benefitfor completion of each process in the optimized process schedule. 12.The at least one computer readable medium of claim 11, furthercomprising instructions to: order the processes of the optimized processschedule based on the benefit for completion of each process in theoptimized process schedule.
 13. The at least one computer readablemedium of claim 8, further comprising instructions to: receive calendardata from the computing device; and re-optimize the process schedulebased on incorporation of the calendar data.
 14. The at least onecomputer readable medium of claim 13, wherein re-optimizing the processschedule includes identifying an efficient route based on location datafor each task of the process schedule and location data for entries ofthe calendar data.
 15. A method for optimizing a process scheduler for agoal, the method comprising: establish a connection to a plurality ofthird-party process engines for obtaining a set of processes viarespective Application Programming Interface (API) calls to theplurality of process engines, each process of the set of processesrelating to a task to be completed; identifying process data, byaccessing the plurality of third-party process engines, for each memberof the set of processes; obtaining goal data for a goal based on useractivities identified from at least one third-party process engine ofthe plurality or a separate data system, wherein the goal data indicateselements for attainment of the goal by completion of one or moreprocesses of the set of processes; generating a process schedule for theset of processes based on the goal data; generating an optimized processschedule of the process schedule, wherein the optimized process scheduleincludes a linear organization of processes for attainment of the goaland wherein generating the optimized process comprises: comparing firstprocess data of a first process and second process data of a secondprocess to the goal data; and replacing the first process with thesecond process in the process schedule; and transmitting instructions toa computing device to display applications corresponding to each processof the optimized process schedule, the applications being accessedthrough and associated with at least one of the plurality of third-partyprocess engines, wherein a first application corresponding to an initialprocess in the optimized process schedule is activated for display. 16.The method of claim 15, further comprising: identifying a location foreach task of the optimized process schedule; and ordering the optimizedprocess schedule based on an efficient location path between each taskof the optimized process schedule.
 17. The method of claim 15, furthercomprising: ordering the processes based on periods of time, where afinancial incentive applies for completing an incentivized task from theoptimized process schedule during an identified time period.
 18. Themethod of claim 15, wherein the instructions to display applicationsinclude instructions to display an indication of a benefit forcompletion of each process in the optimized process schedule.
 19. Themethod of claim 18, further comprising: ordering the processes of theoptimized process schedule based on the benefit for completion of eachprocess in the optimized process schedule.
 20. The method of claim 15,further comprising: receiving calendar data from the computing device;and re-optimizing the process schedule based on incorporation of thecalendar data.